﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Assessment.Management.Utils;
using Assessment.Management.SharedComponent.Params.ManagerParam;
using Assessment.Management.SharedComponent.Constants;
using Assessment.Management.BIZ;
using Assessment.Management.SharedComponent.Entities;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;
using Assessment.Management.UI.Admin.Upload;

namespace Assessment.Management.UI.Admin.UserControls.Classes
{
    public partial class ClassAdd : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            DepartmentParam param = new DepartmentParam(FunctionType.GetListDepartment);
            MainController.Provider.Execute(param);
            ddlKhoa.DataSource = param.listDepartment;
            ddlKhoa.DataBind();
            ddlKhoa.Items.Insert(0, new ListItem("----------Chọn Khoa----------", ""));
            ddlKhoa.SelectedIndex = 0;
        }
        private bool ValidateDataToAdd()
        {
            bool kt = true;
            if (ddlKhoa.SelectedValue == "" || txtTenL.Text=="")
            {
                kt = false;
            }
            return kt;
        }
        private bool CheckExitsData()
        {
            ClassParam param = new ClassParam(FunctionType.CheckExitsClassData);
            MainController.Provider.Execute(param);
            bool kt = false;
            if (param.Class.ID > 0)
            {
                kt = true;
            }
            return kt;
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (ValidateDataToAdd())
            {
                if (CheckExitsData())
                {
                    lblMessage.Text = "<font color='Red'>Đã tồn tại dữ liệu này. Vui lòng kiểm tra lại</font>";
                }
                else
                {
            SaveClass();
            lblMessage.Text = "<font color='Red'>Thêm thành công !!!</font>";
                }

            }
        else
        {
            lblMessage.Text = "<font color='Red'>Thông tin chưa đầy đủ. Vui lòng kiểm tra lại</font>";
        }
        }

        protected void btnExit_Click(object sender, EventArgs e)
        {
            Response.Redirect("UniAdmin.aspx?do=classmanager");
        }
        protected void btnSaveAndNew_Click(object sender, EventArgs e)
        {
            if (ValidateDataToAdd())
            {
                if (CheckExitsData())
                {
                    lblMessage.Text = "<font color='Red'>Đã tồn tại dữ liệu này. Vui lòng kiểm tra lại</font>";
                }
                else
                {
            SaveClassAndNew();
               lblMessage.Text = "<font color='Red'>Thêm thành công !!!</font>";
                }

            }
            else
            {
                lblMessage.Text = "<font color='Red'>Thông tin chưa đầy đủ. Vui lòng kiểm tra lại</font>";
            }
        }
        //Lưu môn học xuống csdl
        private void SaveClass()
        {
            ClassParam param = new ClassParam(FunctionType.CreateClass);
            param.Class = GetItemOnForm();
            MainController.Provider.Execute(param);
            Response.Redirect("UniAdmin.aspx?do=classmanager");
        }
        private void SaveClassAndNew()
        {
            ClassParam param = new ClassParam(FunctionType.CreateClass);
            param.Class = GetItemOnForm();
            MainController.Provider.Execute(param);
            Response.Redirect("UniAdmin.aspx?do=classadd");
        }

        //Lấy dữ liệu nhập vào
        private Class GetItemOnForm()
        {
            Class cl = new Class();
            cl.ClassName = txtTenL.Text.Trim();
            cl.DepartmentID = int.Parse(ddlKhoa.SelectedValue);
            cl.CreatedBy = SMX.smx_CreatedBy;
            cl.CreatedDTG = DateTime.Now;
            cl.Deleted = SMX.smx_IsNotDeleted;
            cl.Version = SMX.smx_FirstVersion;
            return cl;
        }
        protected void btnUpload_Click(object sender, EventArgs e)
        {
            if (fileUpload.HasFile)
            {

                string path = string.Concat(Server.MapPath(@"\UI\Admin\Upload\" + fileUpload.FileName));
                FileInfo fInfo = new FileInfo(path);
                if (fInfo.Exists)
                {
                    fInfo.Delete();
                }
                fileUpload.SaveAs(path);
                Uploadfile up = new Uploadfile();
                up.Upload(path,"Classes");
                Response.Redirect("UniAdmin.aspx?do=classmanager");
            }
        }
    }
}